 $LOAD_PATH.unshift File.join(File.dirname(__FILE__),'../..','ext_pr1/lib')
 require 'ext_pr1_v4'

# Übungen zur Einfach- und Mehrfachrekursion
#
# Aufgabe 1: 
# Summe
# 
# sum ::= (var) :: Nat x Nat -> Nat
# 
 def sum(n) 
   check_pre((n.nat?))
   n = (n == 0 ? 0 : n + sum(n-1)) 
 end
 
 #Aufgabe 2: 
 #Potenz
 #
 # potenz ::= (x, n) :: Nat x Int -> Nat
 #

 def potenz(x, n)
   check_pre((n.nat?))
   if (n == 1) then
     x
   elsif (n == 0) then
     1
   else 
     x*=potenz((x), n-1)
   end
 end
 
 #Aufgabe 3
 # Fibonacci
 #
 # fibo ::= (n) :: Nat x Nat -> Nat
 
def fibo(n)
  return n if n < 2
  return fibo(n- 1) + fibo(n - 2)
end

